const Mock = require('mockjs')
const R = Mock.Random // Random工具类，生成各种随机数据

// 生成数据
const data = () => {
  const res = Mock.mock({
    // 'list|5': [{
    //   'name': '@CNAME',
    //   'first': '@FIRST',
    //   'boolean': R.boolean(1, 1, false)
    // }]

    // Mock.Random
    // 生成布尔值
    'boolean1': R.boolean(), // 等价于'boolean': '@BOOLEAN'
    'boolean2': R.boolean(1, 9, true),

    // 生成自然数（大于等于0的数）
    'natural1': R.natural(), // 等价于@NATURAL
    'natural2': R.natural(1, 20),

    // 整数
    'integer1': R.integer(), // 等价于'integer1': '@INTEGER'
    'integer2': R.integer(20),
    'integer3': R.integer(20, 60),

    // 浮点数
    'float1': R.float(), // 等价于'float1': '@FLOAT'
    'float2': R.float(0), // min
    'float3': R.float(0, 50), // 区间
    'float4': R.float(0, 50, 2), // 区间，小数部分的位数最小值
    'float5': R.float(0, 50, 2, 4), // 区间，小数部分位数的最小值和最大值

    // character随机字符
    'character1': R.character(), // 等价于'character1': '@CHARACTER'
    'character2': R.character('wadaeedc'),
    'character3': R.character('lower'), // 从'abcdefghijklmnopqrstuvwxyz'中取
    'character4': R.character('upper'), // 从'ABCDEFGHIJKLMNOPQRSTUVWXYZ'中取
    'character5': R.character('number'), // 从'0123456789'中取
    'character6': R.character('symbol'), // 从'!@#$%^&*()[]'中取

    // string随机字符串
    'string1': R.string(), // 等价于'string1': '@STRING'
    'string2': R.string(3),
    'string3': R.string(3, 5),
    'string4': R.string('abcd', 3),
    'string5': R.string('lower', 3, 5),
    'string6': R.string('upper', 3, 5),
    'string7': R.string('number', 3, 5),
    'string8': R.string('symbol', 3, 5),

    // range整型数组
    'range1': R.range(10), // 等价于'range1': '@RANGE(10)'
    'range2': R.range(2, 6), // [2, 3, 4, 5]
    'range3': R.range(0, 10, 2), // [0, 2, 4, 6, 8]

    // date随机的日期字符串
    'date1': R.date(), // 等价于'date1': '@DATE' {date1: "2015-06-02"}
    'date2': R.date('yyyy-MM-dd HH:mm:ss'), // "1986-11-13 21:28:14"

    // time随其事件字符串
    'time1': R.time(), // 等价于'time1': '@TIME' 17:17:05
    'time2': R.time('A HH:mm:ss'), // PM 12:48:52
    'time3': R.time('a HH:mm:ss'), // am 07:50:58

    // datetime时间和日期字符串
    'datetime1': R.datetime(), // 等价于'datetime1': '@DATETIME' 1982-08-06 07:08:01
    'datetime2': R.datetime('yyyy-MM-dd A HH:mm:ss'), // 2011-09-25 PM 14:06:35

    // now返回当前的日期时间
    'now1': R.now(), // 等价于'now1': '@NOW' 2021-06-28 17:04:01
    'now2': R.now('year'), // 今年的第一天 2021-01-01 00:00:00
    'now3': R.now('month'), // 本月的第一天 2021-06-01 00:00:00
    'now4': R.now('week'), // 本周的第一天 2021-06-27 00:00:00（星期日）
    'now5': R.now('day'), // 今天的初始时间 2021-06-28 00:00:00

    // Image
    'image1': R.image(), // http://dummyimage.com/336x280
    'image2': R.image('200x315'), // 指定大小 http://dummyimage.com/200x315
    'image3': R.image('200x315', '#41B883'), // 指定背景颜色 http://dummyimage.com/200x315/41B883
    'image4': R.image('200x315', '#41B883', '#FFFFFF', '文字'), // 指定文字和文字颜色https://dummyimage.com/200x315/41B883/FFFFFF&text=%E6%96%87%E5%AD%97
    'image5': R.image('200x315', '#41B883', '#FFFFFF', 'jpg', '文字'), // 指定图片格式http://dummyimage.com/200x315/41B883/FFFFFF.jpg&text=%E6%96%87%E5%AD%97
  
    // dataImage base64图片编码
    'dataImage1': R.dataImage(), // "...
    'dataImage2': R.dataImage('200x145'), // 指定大小
    'dataImage3': R.dataImage('200x145', '图片内容'), // 指定大小和文字内容

    // color 随机颜色
    'color': R.color(), // "#f2a179"

    // capitalize 将第一个字母转为大写
    'capitalize': R.capitalize('hello'), // "Hello"

    // upper 将字符串转为大写
    // 'upper': R.upper('hello') // "HELLO"

    // lower将字符串转为小写
    'lower': R.lower('HeLLo'), // "hello"

    // pick从数组中随机选取一个元素返回
    'pick': R.pick(['h', 'e', 'l', 'l', 'o']), // "h"

    // shuffle打乱数组中的元素并且返回
    'shuffle': R.shuffle(R.range(5)), // [1, 0, 2, 4, 3]

    // Text
    // paragraph 随机生成一段文本
    'paragraph': R.paragraph(), // 随机生成一段文本，包含空格

    // sentence 随机生成一个句子，第一个单词是大写
    'sentence': R.sentence(),

    // word 随机生成一个单词
    'word1': R.word(), // "ilru"
    'word2': R.word(5), // "kfhst"指定单词的长度
    'word3': R.word(1, 3), // 1-3个字符长度

    // title随机生成一个标题，每个单词的首字母大写
    'title1': R.title(), // "Khwye Difhmul Zpiwnsgn Pkdssteic"
    'title1': R.title(3), // "Rxe Bjcfwkqdcw Gwvdbob"指定标题中单词的个数
    'title1': R.title(2, 3), // 指定单词个数的范围2-3个单词

    // Name
    // first 随机生成一个常见的英文名
    'first': R.first(), // "Richard"

    // last
    'last': R.last(), //  "Robinson"

    // name随机生成一个常见的英文姓名
    'name1': R.name(), // "Carol Lee"
    'name2': R.name(true), // "Carol Kenneth Hall"

    // cname
    'cname1': R.cname(), // "顾秀英"
    'cname2': R.cname(2), // "曾艳"

    // Web
    // url
    'url': R.url(), // "nntp://sjjwczmy.bj/kufw"

    // domain
    'domain': R.domain(), // "enumu.no"

    // email
    'email': R.email(), // "h.pdvopio@njhp.my"

    // ip
    'ip': R.ip(), // "215.50.135.148"

    // tld
    'tld': R.tld(), // "kh"

    // Address
    // area 随机生成一个中国大区
    'region': R.region(), // "华南"
    'province': R.province(), // "广东省"

    // guid
    'guid': R.guid(), // "d32aa8Ed-FdEF-Ed5b-b9FF-a9d38786Bd68"
    'id': R.id() // 随机生成一个18位身份证"350000201605258241"
  })
  // const res = Mock.mock({
  //   'userList|20': [{
  //     'id|+1': 1
  //   }]
  // })
  // res.userList.map((val, index) => {
  //   val.username = R.cname()
  //   return val
  // })
  return res
}
// 拦截请求，一般情况下尽量使用正则表达式
Mock.mock('/api/userList', 'get', data)

const data2 = () => {
  const res = {
    msg: '请求成功',
    code: 0,
    time: R.datetime()
  }
  return res
}
// mock登录接口
Mock.mock('/api/login', 'post', data2)
